A significant and growing number of low power applications have a usable source of power that is intermittent with little or no power during dormant periods. Many of these power sources have an available power window that is variable over the long term but relatively constant in the short term. This sort of behavior in a power source would be expected in a “heartbeat” situation or where mechanical inertia would come into play (drive shaft coupling, vibration, etc.).
In current applications, data is processed during the usable source of power. This data is processed typically in volatile memory and intermittently saved in non-volatile memory. Volatile memory loses data as soon as the system is turned off; it requires constant power to remain viable. Most types of RAM fall into this category. Nonvolatile memory, on the other hand, does not lose its data when the system or device is turned off. Thus, by using nonvolatile memory, it is possible to ensure that data can be saved in low power applications having a usable source of power that is intermittent with little or no power during dormant periods. A number of types of memory fall into this category including, for example, ROM and Flash memory storage devices.
However, it has been found that saving data in non-volatile memory has a significant energy cost. And, current applications save data constantly in the non-volatile memory as there is no way to predict when there will be a power loss. Thus, by constantly saving data in the non-volatile memory, the application is ensured that data will be saved for loading at power up, but at a cost of further power loss. Due this additional power loss, though, a significant drain is placed on the application thus leading to faster power loss.
Accordingly, there exists a need in the art to overcome the deficiencies and limitations described hereinabove.